#ifndef prs_FrmLinkAttr_H
#define prs_FrmLinkAttr_H

#include "prs_FrmGeom.h"
#include "prs_FrmNodes.h"
#include "prs_FrmValue.h"
                        
namespace prs {

///////////////////////////////////////////////////////////////////////////////

struct TNodeFrmLinkAttr : public TNodeFrm
{
  DECLARE_ClientNode()
  //
  struct TLinkType : public svl::TEnumSet {
    enum Enum {
      Unknown = 0,
      Attr    = 1,
      Node    = 2,
      Param   = 3
    };
    TLinkType() : svl::TEnumSet (
      "Unknown",Unknown,
      "Attr"   ,Attr,
      "Node"   ,Node,
      "Param"  ,Param
    ){}
  };
  //
  TAttrNodeType<nodeType_TNodeFrmLinkAttr> NodeType;
  TAttrEnum<attrName_LinkType,TLinkType,TLinkType::Enum> LinkType;
  TAttrPointer<attrName_PNode,TAttrNode*> PNode;
  TAttrInteger<attrName_NAttr> NAttr;
  //
  TNodeFrmLinkAttr() : NodeType(this),PNode(this),LinkType(this),NAttr(this) {}
  //
  //static void SetValueInParent(TAttrNode *InParent,TFrmValue *Value,TAttr *&outBindAttr);
  
private:
  svl_Except;  
};

///////////////////////////////////////////////////////////////////////////////

struct TNodeFrmLinkAttrArray : public TNodeArrayT<TNodeFrmLinkAttr>
{
};

///////////////////////////////////////////////////////////////////////////////
}

#endif
